<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Classes  Reference</title>
    <link rel="stylesheet" type="text/css" href="css/jazzy.css" />
    <link rel="stylesheet" type="text/css" href="css/highlight.css" />
    <meta charset='utf-8'>
    <script src="js/jquery.min.js" defer></script>
    <script src="js/jazzy.js" defer></script>
    
    <script src="js/lunr.min.js" defer></script>
    <script src="js/typeahead.jquery.js" defer></script>
    <script src="js/jazzy.search.js" defer></script>
  </head>
  <body>
    <a name="//apple_ref/swift/Section/Classes" class="dashAnchor"></a>
    <a title="Classes  Reference"></a>
    <header>
      <div class="content-wrapper">
        <p><a href="index.html">FWFramework 3.8.0 Docs</a> (81% documented)</p>
        <div class="header-right">
          <form role="search" action="search.json">
            <input type="text" placeholder="Search documentation" data-typeahead>
          </form>
        </div>
      </div>
    </header>
    <div class="content-wrapper">
      <p id="breadcrumbs">
        <a href="index.html">FWFramework Reference</a>
        <img id="carat" src="img/carat.png" alt=""/>
        Classes  Reference
      </p>
    </div>
    <div class="content-wrapper">
      <nav class="sidebar">
        <ul class="nav-groups">
          <li class="nav-group-name">
            <a href="Categories.html">Categories</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="Categories/CAAnimation%28FWQuartzCore%29.html">CAAnimation(FWQuartzCore)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/CADisplayLink%28FWQuartzCore%29.html">CADisplayLink(FWQuartzCore)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/CAGradientLayer%28FWQuartzCore%29.html">CAGradientLayer(FWQuartzCore)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/CALayer%28FWQuartzCore%29.html">CALayer(FWQuartzCore)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSArray%28FWFoundation%29.html">NSArray(FWFoundation)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSArray%28FWSafeType%29.html">NSArray(FWSafeType)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSAttributedString%28FWFoundation%29.html">NSAttributedString(FWFoundation)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSBundle%28FWLanguage%29.html">NSBundle(FWLanguage)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSData%28FWEncode%29.html">NSData(FWEncode)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSData%28FWFoundation%29.html">NSData(FWFoundation)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSDate%28FWFoundation%29.html">NSDate(FWFoundation)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSDictionary%28FWFoundation%29.html">NSDictionary(FWFoundation)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSDictionary%28FWSafeType%29.html">NSDictionary(FWSafeType)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSMutableArray%28FWSafeType%29.html">NSMutableArray(FWSafeType)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSMutableDictionary%28FWSafeType%29.html">NSMutableDictionary(FWSafeType)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSMutableSet%28FWSafeType%29.html">NSMutableSet(FWSafeType)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSObject%28FWAppearance%29.html">NSObject(FWAppearance)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSString%28FWEncode%29.html">NSString(FWEncode)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSString%28FWFoundation%29.html">NSString(FWFoundation)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSString%28FWLanguage%29.html">NSString(FWLanguage)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSString%28FWSafeType%29.html">NSString(FWSafeType)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSTimer%28FWBlock%29.html">NSTimer(FWBlock)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSURL%28FWEncode%29.html">NSURL(FWEncode)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/NSUserDefaults%28FWFoundation%29.html">NSUserDefaults(FWFoundation)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIApplication%28FWAdaptive%29.html">UIApplication(FWAdaptive)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIApplication%28FWToolkit%29.html">UIApplication(FWToolkit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIBarButtonItem%28FWBlock%29.html">UIBarButtonItem(FWBlock)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIButton%28FWUIKit%29.html">UIButton(FWUIKit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UICollectionReusableView%28FWDynamicLayout%29.html">UICollectionReusableView(FWDynamicLayout)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UICollectionView%28FWDynamicLayout%29.html">UICollectionView(FWDynamicLayout)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UICollectionViewCell%28FWDynamicLayout%29.html">UICollectionViewCell(FWDynamicLayout)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UICollectionViewCell%28FWUIKit%29.html">UICollectionViewCell(FWUIKit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIColor%28FWTheme%29.html">UIColor(FWTheme)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIColor%28FWToolkit%29.html">UIColor(FWToolkit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIControl%28FWBlock%29.html">UIControl(FWBlock)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIDevice%28FWAdaptive%29.html">UIDevice(FWAdaptive)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIFont%28FWToolkit%29.html">UIFont(FWToolkit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIGestureRecognizer%28FWBlock%29.html">UIGestureRecognizer(FWBlock)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIImage%28FWTheme%29.html">UIImage(FWTheme)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIImage%28FWToolkit%29.html">UIImage(FWToolkit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIImageAsset%28FWTheme%29.html">UIImageAsset(FWTheme)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIImageView%28FWTheme%29.html">UIImageView(FWTheme)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UILabel%28FWUIKit%29.html">UILabel(FWUIKit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UINavigationBar%28FWBarAppearance%29.html">UINavigationBar(FWBarAppearance)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UINavigationController%28FWNavigation%29.html">UINavigationController(FWNavigation)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UINavigationController%28FWToolkit%29.html">UINavigationController(FWToolkit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIPageControl%28FWUIKit%29.html">UIPageControl(FWUIKit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIScreen%28FWAdaptive%29.html">UIScreen(FWAdaptive)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIScrollView%28FWUIKit%29.html">UIScrollView(FWUIKit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UISlider%28FWUIKit%29.html">UISlider(FWUIKit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UISwitch%28FWUIKit%29.html">UISwitch(FWUIKit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UITabBar%28FWBarAppearance%29.html">UITabBar(FWBarAppearance)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UITableView%28FWDynamicLayout%29.html">UITableView(FWDynamicLayout)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UITableViewCell%28FWDynamicLayout%29.html">UITableViewCell(FWDynamicLayout)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UITableViewCell%28FWUIKit%29.html">UITableViewCell(FWUIKit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UITableViewHeaderFooterView%28FWDynamicLayout%29.html">UITableViewHeaderFooterView(FWDynamicLayout)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UITextField%28FWKeyboard%29.html">UITextField(FWKeyboard)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UITextField%28FWUIKit%29.html">UITextField(FWUIKit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UITextView%28FWKeyboard%29.html">UITextView(FWKeyboard)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UITextView%28FWPlaceholder%29.html">UITextView(FWPlaceholder)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UITextView%28FWUIKit%29.html">UITextView(FWUIKit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIToolbar%28FWBarAppearance%29.html">UIToolbar(FWBarAppearance)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIView%28FWAutoLayout%29.html">UIView(FWAutoLayout)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIView%28FWBlock%29.html">UIView(FWBlock)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIView%28FWLayoutChain%29.html">UIView(FWLayoutChain)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIView%28FWToolkit%29.html">UIView(FWToolkit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIView%28FWUIKit%29.html">UIView(FWUIKit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIViewController%28FWAdaptive%29.html">UIViewController(FWAdaptive)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIViewController%28FWBlock%29.html">UIViewController(FWBlock)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIViewController%28FWNavigation%29.html">UIViewController(FWNavigation)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIViewController%28FWToolkit%29.html">UIViewController(FWToolkit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIViewController%28FWUIKit%29.html">UIViewController(FWUIKit)</a>
              </li>
              <li class="nav-group-task">
                <a href="Categories/UIWindow%28FWNavigation%29.html">UIWindow(FWNavigation)</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="Classes.html">Classes</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="Classes/ABConditionalTest.html">ABConditionalTest</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/ABDefaultRepository.html">ABDefaultRepository</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/ABSplitTest.html">ABSplitTest</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/ABVersion.html">ABVersion</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/AuthorizeManager.html">AuthorizeManager</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/Benchmark.html">Benchmark</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FW.html">FW</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWAppearance.html">FWAppearance</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWAutoloader.html">FWAutoloader</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWBlockProxy.html">FWBlockProxy</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWConfiguration.html">FWConfiguration</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWDelegateProxy.html">FWDelegateProxy</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWExceptionManager.html">FWExceptionManager</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWIcon.html">FWIcon</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWLayoutChain.html">FWLayoutChain</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWLoader.html">FWLoader</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWLocationManager.html">FWLocationManager</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWLogger.html">FWLogger</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWLoggerPluginImpl.html">FWLoggerPluginImpl</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWMediator.html">FWMediator</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWModuleBundle.html">FWModuleBundle</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWMulticastDelegate.html">FWMulticastDelegate</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWPluginManager.html">FWPluginManager</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWRouter.html">FWRouter</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWRouterContext.html">FWRouterContext</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWState.html">FWState</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWStateEvent.html">FWStateEvent</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWStateMachine.html">FWStateMachine</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWStateTransition.html">FWStateTransition</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWTask.html">FWTask</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWTaskManager.html">FWTaskManager</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWThemeManager.html">FWThemeManager</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWThemeObject.html">FWThemeObject</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWWeakObject.html">FWWeakObject</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/FWWeakProxy.html">FWWeakProxy</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/KeychainManager.html">KeychainManager</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/LayoutChain.html">LayoutChain</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/NotificationManager.html">NotificationManager</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/Promise.html">Promise</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/VersionManager.html">VersionManager</a>
              </li>
              <li class="nav-group-task">
                <a href="Classes/Wrapper.html">Wrapper</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="Constants.html">Constants</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="Constants.html#/c:@FWExceptionCapturedNotification">FWExceptionCapturedNotification</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:@FWFrameworkVersionNumber">FWFrameworkVersionNumber</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:@FWFrameworkVersionString">FWFrameworkVersionString</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:@FWHeadingUpdatedNotification">FWHeadingUpdatedNotification</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:@FWLanguageChangedNotification">FWLanguageChangedNotification</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:@FWLocationFailedNotification">FWLocationFailedNotification</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:@FWLocationUpdatedNotification">FWLocationUpdatedNotification</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWMediator.h@FWModulePriorityDefault">FWModulePriorityDefault</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWMediator.h@FWModulePriorityHigh">FWModulePriorityHigh</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWMediator.h@FWModulePriorityLow">FWModulePriorityLow</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:@FWRouterHandlerKey">FWRouterHandlerKey</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:@FWRouterOptionsKey">FWRouterOptionsKey</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:@FWRouterSourceKey">FWRouterSourceKey</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWAdaptive.h@FWScreenInch35">FWScreenInch35</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWAdaptive.h@FWScreenInch40">FWScreenInch40</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWAdaptive.h@FWScreenInch47">FWScreenInch47</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWAdaptive.h@FWScreenInch54">FWScreenInch54</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWAdaptive.h@FWScreenInch55">FWScreenInch55</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWAdaptive.h@FWScreenInch58">FWScreenInch58</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWAdaptive.h@FWScreenInch61">FWScreenInch61</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWAdaptive.h@FWScreenInch65">FWScreenInch65</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWAdaptive.h@FWScreenInch67">FWScreenInch67</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:@FWStateChangedNotification">FWStateChangedNotification</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:@FWThemeChangedNotification">FWThemeChangedNotification</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWTheme.h@FWThemeModeDark">FWThemeModeDark</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWTheme.h@FWThemeModeLight">FWThemeModeLight</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWTheme.h@FWThemeModeSystem">FWThemeModeSystem</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWTheme.h@FWThemeStyleDark">FWThemeStyleDark</a>
              </li>
              <li class="nav-group-task">
                <a href="Constants.html#/c:FWTheme.h@FWThemeStyleLight">FWThemeStyleLight</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="Enums.html">Enumerations</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="Enums/AuthorizeStatus.html">AuthorizeStatus</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/AuthorizeType.html">AuthorizeType</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/FWHeaderFooterViewType.html">FWHeaderFooterViewType</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/FWLogLevel.html">FWLogLevel</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/FWLogType.html">FWLogType</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/FWNavigationOptions.html">FWNavigationOptions</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/FWViewControllerVisibleState.html">FWViewControllerVisibleState</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/Index.html">Index</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/JSONError.html">JSONError</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/JSONKey.html">JSONKey</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/JSONType.html">JSONType</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/JSONWritingOptionsKeys.html">JSONWritingOptionsKeys</a>
              </li>
              <li class="nav-group-task">
                <a href="Enums/VersionStatus.html">VersionStatus</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="Protocols.html">Protocols</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="Protocols/ABRandomRepository.html">ABRandomRepository</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/AnyDateFormatter.html">AnyDateFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/AnyDecoder.html">AnyDecoder</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/AnyEncoder.html">AnyEncoder</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/AuthorizeProtocol.html">AuthorizeProtocol</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/AutoloadProtocol.html">AutoloadProtocol</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/FWConfigurationTemplateProtocol.html">FWConfigurationTemplateProtocol</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/FWLoggerPlugin.html">FWLoggerPlugin</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/FWModuleProtocol.html">FWModuleProtocol</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/FWPluginProtocol.html">FWPluginProtocol</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/FWThemeObserver.html">FWThemeObserver</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/JSONSubscriptType.html">JSONSubscriptType</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/SafeType.html">SafeType</a>
              </li>
              <li class="nav-group-task">
                <a href="Protocols/WrapperCompatible.html">WrapperCompatible</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="Type%20Definitions.html">Type Definitions</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWBlock.h@T@FWBlockBool">FWBlockBool</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWBlock.h@T@FWBlockBoolParam">FWBlockBoolParam</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWBlock.h@T@FWBlockDouble">FWBlockDouble</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWBlock.h@T@FWBlockInt">FWBlockInt</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWBlock.h@T@FWBlockIntParam">FWBlockIntParam</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWBlock.h@T@FWBlockParam">FWBlockParam</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWBlock.h@T@FWBlockVoid">FWBlockVoid</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWDynamicLayout.h@T@FWCellConfigurationBlock">FWCellConfigurationBlock</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWDynamicLayout.h@T@FWCellIndexPathBlock">FWCellIndexPathBlock</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWDynamicLayout.h@T@FWCollectionCellConfigurationBlock">FWCollectionCellConfigurationBlock</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWDynamicLayout.h@T@FWCollectionCellIndexPathBlock">FWCollectionCellIndexPathBlock</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWDynamicLayout.h@T@FWHeaderFooterViewConfigurationBlock">FWHeaderFooterViewConfigurationBlock</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWDynamicLayout.h@T@FWHeaderFooterViewSectionBlock">FWHeaderFooterViewSectionBlock</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWMediator.h@T@FWModulePriority">FWModulePriority</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWDynamicLayout.h@T@FWReusableViewConfigurationBlock">FWReusableViewConfigurationBlock</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWDynamicLayout.h@T@FWReusableViewIndexPathBlock">FWReusableViewIndexPathBlock</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWRouter.h@T@FWRouterCompletion">FWRouterCompletion</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWRouter.h@T@FWRouterHandler">FWRouterHandler</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWRouter.h@T@FWRouterUserInfoKey">FWRouterUserInfoKey</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWAdaptive.h@T@FWScreenInch">FWScreenInch</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWTheme.h@T@FWThemeMode">FWThemeMode</a>
              </li>
              <li class="nav-group-task">
                <a href="Type%20Definitions.html#/c:FWTheme.h@T@FWThemeStyle">FWThemeStyle</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="Functions.html">Functions</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="Functions.html#/s:11FWFramework1loiySbAA4JSONV_ADtF">&lt;(_:_:)</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/s:11FWFramework2leoiySbAA4JSONV_ADtF">&lt;=(_:_:)</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/s:11FWFramework2eeoiySbAA4JSONV_ADtF">==(_:_:)</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/s:11FWFramework1goiySbAA4JSONV_ADtF">&gt;(_:_:)</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/s:11FWFramework2geoiySbAA4JSONV_ADtF">&gt;=(_:_:)</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWAutoload">FWAutoload</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWFixedHeight">FWFixedHeight</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWFixedValue">FWFixedValue</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWFlatScale">FWFlatScale</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWFlatValue">FWFlatValue</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWFontBold">FWFontBold</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWFontLight">FWFontLight</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWFontMedium">FWFontMedium</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWFontRegular">FWFontRegular</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWFontSemibold">FWFontSemibold</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWFontThin">FWFontThin</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWIconImage">FWIconImage</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWIconNamed">FWIconNamed</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWRelativeHeight">FWRelativeHeight</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWRelativeInsets">FWRelativeInsets</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWRelativePoint">FWRelativePoint</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWRelativeRect">FWRelativeRect</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWRelativeSize">FWRelativeSize</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWRelativeValue">FWRelativeValue</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWSafeNumber">FWSafeNumber</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWSafeString">FWSafeString</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWSafeURL">FWSafeURL</a>
              </li>
              <li class="nav-group-task">
                <a href="Functions.html#/c:@F@FWSynchronized">FWSynchronized</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="Extensions.html">Extensions</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="Extensions/Array.html">Array</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Bool.html">Bool</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions.html#/s:12CoreGraphics7CGFloatV">CGFloat</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Data.html">Data</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions.html#/s:10Foundation4DateV">Date</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions.html#/c:objc(cs)NSDateFormatter">DateFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Decoder.html">Decoder</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Dictionary.html">Dictionary</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Double.html">Double</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Encoder.html">Encoder</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Float.html">Float</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions.html#/c:objc(cs)NSISO8601DateFormatter">ISO8601DateFormatter</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Int.html">Int</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Int16.html">Int16</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Int32.html">Int32</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Int64.html">Int64</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Int8.html">Int8</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions.html#/s:10Foundation11JSONDecoderC">JSONDecoder</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions.html#/s:10Foundation11JSONEncoderC">JSONEncoder</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Optional.html">Optional</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions.html#/s:10Foundation19PropertyListDecoderC">PropertyListDecoder</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions.html#/s:10Foundation19PropertyListEncoderC">PropertyListEncoder</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/Set.html">Set</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/String.html">String</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/TestCase.html">TestCase</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/UInt.html">UInt</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/UInt16.html">UInt16</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/UInt32.html">UInt32</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/UInt64.html">UInt64</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/UInt8.html">UInt8</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions/URL.html">URL</a>
              </li>
              <li class="nav-group-task">
                <a href="Extensions.html#/s:10Foundation10URLRequestV">URLRequest</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="Structs.html">Structures</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="Structs/JSON.html">JSON</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/ModuleAnnotation.html">ModuleAnnotation</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/PluginAnnotation.html">PluginAnnotation</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/RouterAnnotation.html">RouterAnnotation</a>
              </li>
              <li class="nav-group-task">
                <a href="Structs/UserDefaultAnnotation.html">UserDefaultAnnotation</a>
              </li>
            </ul>
          </li>
          <li class="nav-group-name">
            <a href="Typealiases.html">Type Aliases</a>
            <ul class="nav-group-tasks">
              <li class="nav-group-task">
                <a href="Typealiases.html#/s:11FWFramework9BlockBoola">BlockBool</a>
              </li>
              <li class="nav-group-task">
                <a href="Typealiases.html#/s:11FWFramework14BlockBoolParama">BlockBoolParam</a>
              </li>
              <li class="nav-group-task">
                <a href="Typealiases.html#/s:11FWFramework11BlockDoublea">BlockDouble</a>
              </li>
              <li class="nav-group-task">
                <a href="Typealiases.html#/s:11FWFramework8BlockInta">BlockInt</a>
              </li>
              <li class="nav-group-task">
                <a href="Typealiases.html#/s:11FWFramework13BlockIntParama">BlockIntParam</a>
              </li>
              <li class="nav-group-task">
                <a href="Typealiases.html#/s:11FWFramework10BlockParama">BlockParam</a>
              </li>
              <li class="nav-group-task">
                <a href="Typealiases.html#/s:11FWFramework9BlockVoida">BlockVoid</a>
              </li>
              <li class="nav-group-task">
                <a href="Typealiases.html#/s:11FWFramework9JSONIndexa">JSONIndex</a>
              </li>
              <li class="nav-group-task">
                <a href="Typealiases.html#/s:11FWFramework12JSONRawIndexa">JSONRawIndex</a>
              </li>
            </ul>
          </li>
        </ul>
      </nav>
      <article class="main-content">
        <section>
          <section class="section">
            <h1>Classes</h1>
            <p>The following classes are available globally.</p>

          </section>
          <section class="section task-group-section">
            <div class="task-group">
              <div class="task-name-container">
                <a name="/FWAutoloader"></a>
                <a name="//apple_ref/swift/Section/FWAutoloader" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/FWAutoloader"></a>
                  <h3 class="section-name"><span>FWAutoloader</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWAutoloader"></a>
                    <a name="//apple_ref/swift/Class/FWAutoloader" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWAutoloader">FWAutoloader</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>自动加载器，处理swift不支持load方法问题</p>
<div class="aside aside-note">
    <p class="aside-title">Note</p>
    本方案采用objc扩展方法实现，相对于全局扫描类方案性能高(1/200)，使用简单
使用方法：新增FWAutoloader扩展objc类方法，以load开头即会自动调用，注意方法名不要重复，建议load+类名+扩展名

</div>

                        <a href="Classes/FWAutoloader.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWAutoloader</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>
<pre class="highlight swift"><code><span class="kd">@objc</span> <span class="kd">extension</span> <span class="kt">Autoloader</span><span class="p">:</span> <span class="kt"><a href="Protocols/AutoloadProtocol.html">AutoloadProtocol</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWConfiguration"></a>
                    <a name="//apple_ref/swift/Class/FWConfiguration" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWConfiguration">FWConfiguration</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>配置基类，使用时继承即可</p>

<p>默认自动查找模板类名格式优先级如下：</p>

<ol>
<li>当前模块.[配置类]+Template</li>
<li>主项目.[配置类]+Template</li>
<li>当前模块.[配置类]+DefaultTemplate</li>
</ol>

                        <a href="Classes/FWConfiguration.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWConfiguration</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/FWLogger"></a>
                <a name="//apple_ref/swift/Section/FWLogger" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/FWLogger"></a>
                  <h3 class="section-name"><span>FWLogger</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWLogger"></a>
                    <a name="//apple_ref/swift/Class/FWLogger" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWLogger">FWLogger</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>日志记录类。支持设置全局日志级别和自定义FWLoggerPlugin插件</p>

                        <a href="Classes/FWLogger.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWLogger</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWAppearance"></a>
                    <a name="//apple_ref/swift/Class/FWAppearance" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWAppearance">FWAppearance</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>UIAppearance扩展类，支持任意NSObject对象使用UIAppearance能力</p>
<div class="aside aside-note">
    <p class="aside-title">Note</p>
    <p>系统默认时机是在didMoveToWindow处理UIAppearance</p>

</div><div class="aside aside-see">
    <p class="aside-title">See</p>
    <p><a href="https://github.com/Tencent/QMUI_iOS">https://github.com/Tencent/QMUI_iOS</a></p>

</div>

                        <a href="Classes/FWAppearance.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWAppearance</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/FWLayoutChain"></a>
                <a name="//apple_ref/swift/Section/FWLayoutChain" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/FWLayoutChain"></a>
                  <h3 class="section-name"><span>FWLayoutChain</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWLayoutChain"></a>
                    <a name="//apple_ref/swift/Class/FWLayoutChain" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWLayoutChain">FWLayoutChain</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>视图链式布局类</p>
<div class="aside aside-note">
    <p class="aside-title">Note</p>
    如果约束条件完全相同，会自动更新约束而不是重新添加。
另外，默认布局方式使用LTR，如果需要RTL布局，可通过fwAutoLayoutRTL统一启用

</div>

                        <a href="Classes/FWLayoutChain.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWLayoutChain</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWExceptionManager"></a>
                    <a name="//apple_ref/swift/Class/FWExceptionManager" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWExceptionManager">FWExceptionManager</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>框架异常捕获类</p>
<div class="aside aside-see">
    <p class="aside-title">See</p>
    <a href="https://github.com/jezzmemo/JJException">https://github.com/jezzmemo/JJException</a>

</div><div class="aside aside-see">
    <p class="aside-title">See</p>
    <a href="https://github.com/chenfanfang/AvoidCrash">https://github.com/chenfanfang/AvoidCrash</a>

</div>

                        <a href="Classes/FWExceptionManager.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWExceptionManager</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWIcon"></a>
                    <a name="//apple_ref/swift/Class/FWIcon" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWIcon">FWIcon</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>字体图标抽象基类，子类需继承</p>
<div class="aside aside-note">
    <p class="aside-title">Note</p>
    <p>Foundation icons: <a href="https://zurb.com/playground/foundation-icon-fonts-3#allicons">https://zurb.com/playground/foundation-icon-fonts-3#allicons</a>
FontAwesome: <a href="https://fontawesome.com/">https://fontawesome.com/</a>
ionicons: <a href="https://ionic.io/ionicons/">https://ionic.io/ionicons/</a>
Octicons: <a href="https://primer.style/octicons/">https://primer.style/octicons/</a>
Material: <a href="https://google.github.io/material-design-icons/#icons-for-ios">https://google.github.io/material-design-icons/#icons-for-ios</a></p>

</div><div class="aside aside-see">
    <p class="aside-title">See</p>
    <p><a href="https://github.com/PrideChung/FontAwesomeKit">https://github.com/PrideChung/FontAwesomeKit</a></p>

</div>

                        <a href="Classes/FWIcon.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWIcon</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWLoader"></a>
                    <a name="//apple_ref/swift/Class/FWLoader" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWLoader">FWLoader</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>通用加载器，添加处理句柄后指定输入即可加载输出结果</p>

                        <a href="Classes/FWLoader.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWLoader</span><span class="o">&lt;</span><span class="n">__covariant</span> <span class="n">InputType</span><span class="p">,</span> <span class="n">__covariant</span> <span class="n">OutputType</span><span class="o">&gt;</span> <span class="o">:</span> <span class="n">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/FWLocationManager"></a>
                <a name="//apple_ref/swift/Section/FWLocationManager" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/FWLocationManager"></a>
                  <h3 class="section-name"><span>FWLocationManager</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWLocationManager"></a>
                    <a name="//apple_ref/swift/Class/FWLocationManager" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWLocationManager">FWLocationManager</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>位置服务</p>
<div class="aside aside-note">
    <p class="aside-title">Note</p>
    注意：Info.plist需要添加NSLocationWhenInUseUsageDescription项
如果请求Always定位，还需添加NSLocationAlwaysUsageDescription项和NSLocationAlwaysAndWhenInUseUsageDescription项
iOS11可通过showsBackgroundLocationIndicator配置是否显示后台定位指示器

</div>

                        <a href="Classes/FWLocationManager.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWLocationManager</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/FWLoggerPluginImpl"></a>
                <a name="//apple_ref/swift/Section/FWLoggerPluginImpl" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/FWLoggerPluginImpl"></a>
                  <h3 class="section-name"><span>FWLoggerPluginImpl</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWLoggerPluginImpl"></a>
                    <a name="//apple_ref/swift/Class/FWLoggerPluginImpl" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWLoggerPluginImpl">FWLoggerPluginImpl</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>默认NSLog日志插件</p>

                        <a href="Classes/FWLoggerPluginImpl.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWLoggerPluginImpl</span> <span class="p">:</span> <span class="nc">NSObject</span> <span class="o">&lt;</span><span class="n"><a href="Protocols/FWLoggerPlugin.html">FWLoggerPlugin</a></span><span class="o">&gt;</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/FWMediator"></a>
                <a name="//apple_ref/swift/Section/FWMediator" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/FWMediator"></a>
                  <h3 class="section-name"><span>FWMediator</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWMediator"></a>
                    <a name="//apple_ref/swift/Class/FWMediator" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWMediator">FWMediator</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>iOS模块化架构中间件，结合FWRouter可搭建模块化架构设计</p>
<div class="aside aside-see">
    <p class="aside-title">See</p>
    <a href="https://github.com/youzan/Bifrost">https://github.com/youzan/Bifrost</a>

</div>

                        <a href="Classes/FWMediator.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWMediator</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/FWModuleBundle"></a>
                <a name="//apple_ref/swift/Section/FWModuleBundle" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/FWModuleBundle"></a>
                  <h3 class="section-name"><span>FWModuleBundle</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWModuleBundle"></a>
                    <a name="//apple_ref/swift/Class/FWModuleBundle" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWModuleBundle">FWModuleBundle</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>业务模块Bundle基类，各模块可继承</p>

                        <a href="Classes/FWModuleBundle.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWModuleBundle</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/FWPluginManager"></a>
                <a name="//apple_ref/swift/Section/FWPluginManager" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/FWPluginManager"></a>
                  <h3 class="section-name"><span>FWPluginManager</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWPluginManager"></a>
                    <a name="//apple_ref/swift/Class/FWPluginManager" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWPluginManager">FWPluginManager</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>插件管理器类。支持插件冷替换(使用插件前)和热替换(先释放插件)</p>
<div class="aside aside-note">
    <p class="aside-title">Note</p>
    和Mediator对比如下：
Plugin：和业务无关，侧重于工具类、基础设施、可替换，比如Toast、Loading等
Mediator: 和业务相关，侧重于架构、业务功能、模块化，比如用户模块，订单模块等

</div>

                        <a href="Classes/FWPluginManager.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWPluginManager</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/FWWeakProxy"></a>
                <a name="//apple_ref/swift/Section/FWWeakProxy" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/FWWeakProxy"></a>
                  <h3 class="section-name"><span>FWWeakProxy</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWWeakProxy"></a>
                    <a name="//apple_ref/swift/Class/FWWeakProxy" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWWeakProxy">FWWeakProxy</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>弱引用代理类，用于解决NSTimer和CADisplayLink中的循环引用target问题(默认NSTimer会强引用target,直到invalidate)</p>

                        <a href="Classes/FWWeakProxy.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWWeakProxy</span> <span class="p">:</span> <span class="nc">NSProxy</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/FWWeakObject"></a>
                <a name="//apple_ref/swift/Section/FWWeakObject" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/FWWeakObject"></a>
                  <h3 class="section-name"><span>FWWeakObject</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWWeakObject"></a>
                    <a name="//apple_ref/swift/Class/FWWeakObject" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWWeakObject">FWWeakObject</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>弱引用对象容器类，用于解决关联对象weak引用等</p>

                        <a href="Classes/FWWeakObject.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWWeakObject</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/FWBlockProxy"></a>
                <a name="//apple_ref/swift/Section/FWBlockProxy" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/FWBlockProxy"></a>
                  <h3 class="section-name"><span>FWBlockProxy</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWBlockProxy"></a>
                    <a name="//apple_ref/swift/Class/FWBlockProxy" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWBlockProxy">FWBlockProxy</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Block代理</p>
<div class="aside aside-see">
    <p class="aside-title">See</p>
    <a href="https://github.com/BlocksKit/BlocksKit">https://github.com/BlocksKit/BlocksKit</a>

</div>

                        <a href="Classes/FWBlockProxy.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWBlockProxy</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/FWDelegateProxy"></a>
                <a name="//apple_ref/swift/Section/FWDelegateProxy" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/FWDelegateProxy"></a>
                  <h3 class="section-name"><span>FWDelegateProxy</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWDelegateProxy"></a>
                    <a name="//apple_ref/swift/Class/FWDelegateProxy" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWDelegateProxy">FWDelegateProxy</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>事件协议代理基类，可继承重写事件代理方法</p>

                        <a href="Classes/FWDelegateProxy.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWDelegateProxy</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/FWMulticastDelegate"></a>
                <a name="//apple_ref/swift/Section/FWMulticastDelegate" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/FWMulticastDelegate"></a>
                  <h3 class="section-name"><span>FWMulticastDelegate</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWMulticastDelegate"></a>
                    <a name="//apple_ref/swift/Class/FWMulticastDelegate" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWMulticastDelegate">FWMulticastDelegate</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>多代理转发类</p>

                        <a href="Classes/FWMulticastDelegate.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWMulticastDelegate</span><span class="o">&lt;</span><span class="n">__covariant</span> <span class="n">T</span><span class="o">&gt;</span> <span class="o">:</span> <span class="n">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/FWRouterContext"></a>
                <a name="//apple_ref/swift/Section/FWRouterContext" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/FWRouterContext"></a>
                  <h3 class="section-name"><span>FWRouterContext</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWRouterContext"></a>
                    <a name="//apple_ref/swift/Class/FWRouterContext" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWRouterContext">FWRouterContext</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>URL路由上下文</p>

                        <a href="Classes/FWRouterContext.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWRouterContext</span> <span class="p">:</span> <span class="nc">NSObject</span> <span class="o">&lt;</span><span class="n">NSCopying</span><span class="o">&gt;</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/FWRouter"></a>
                <a name="//apple_ref/swift/Section/FWRouter" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/FWRouter"></a>
                  <h3 class="section-name"><span>FWRouter</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWRouter"></a>
                    <a name="//apple_ref/swift/Class/FWRouter" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWRouter">FWRouter</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>URL路由器</p>
<div class="aside aside-see">
    <p class="aside-title">See</p>
    <a href="https://github.com/meili/MGJRouter">https://github.com/meili/MGJRouter</a>

</div>

                        <a href="Classes/FWRouter.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWRouter</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/FWState"></a>
                <a name="//apple_ref/swift/Section/FWState" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/FWState"></a>
                  <h3 class="section-name"><span>FWState</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWState"></a>
                    <a name="//apple_ref/swift/Class/FWState" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWState">FWState</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>状态类</p>

                        <a href="Classes/FWState.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWState</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/FWStateEvent"></a>
                <a name="//apple_ref/swift/Section/FWStateEvent" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/FWStateEvent"></a>
                  <h3 class="section-name"><span>FWStateEvent</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWStateEvent"></a>
                    <a name="//apple_ref/swift/Class/FWStateEvent" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWStateEvent">FWStateEvent</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>状态事件类</p>

                        <a href="Classes/FWStateEvent.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWStateEvent</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/FWStateTransition"></a>
                <a name="//apple_ref/swift/Section/FWStateTransition" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/FWStateTransition"></a>
                  <h3 class="section-name"><span>FWStateTransition</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWStateTransition"></a>
                    <a name="//apple_ref/swift/Class/FWStateTransition" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWStateTransition">FWStateTransition</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>状态转换器</p>

                        <a href="Classes/FWStateTransition.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWStateTransition</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/FWStateMachine"></a>
                <a name="//apple_ref/swift/Section/FWStateMachine" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/FWStateMachine"></a>
                  <h3 class="section-name"><span>FWStateMachine</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWStateMachine"></a>
                    <a name="//apple_ref/swift/Class/FWStateMachine" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWStateMachine">FWStateMachine</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>有限状态机</p>
<div class="aside aside-see">
    <p class="aside-title">See</p>
    <a href="https://github.com/blakewatters/TransitionKit">https://github.com/blakewatters/TransitionKit</a>

</div>

                        <a href="Classes/FWStateMachine.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWStateMachine</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/FWTask"></a>
                <a name="//apple_ref/swift/Section/FWTask" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/FWTask"></a>
                  <h3 class="section-name"><span>FWTask</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWTask"></a>
                    <a name="//apple_ref/swift/Class/FWTask" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWTask">FWTask</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>任务基类</p>

                        <a href="Classes/FWTask.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWTask</span> <span class="p">:</span> <span class="nc">NSOperation</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/FWTaskManager"></a>
                <a name="//apple_ref/swift/Section/FWTaskManager" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/FWTaskManager"></a>
                  <h3 class="section-name"><span>FWTaskManager</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWTaskManager"></a>
                    <a name="//apple_ref/swift/Class/FWTaskManager" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWTaskManager">FWTaskManager</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>任务管理器，兼容NSBlockOperation和NSInvocationOperation</p>

                        <a href="Classes/FWTaskManager.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWTaskManager</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/FWThemeManager"></a>
                <a name="//apple_ref/swift/Section/FWThemeManager" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/FWThemeManager"></a>
                  <h3 class="section-name"><span>FWThemeManager</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWThemeManager"></a>
                    <a name="//apple_ref/swift/Class/FWThemeManager" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWThemeManager">FWThemeManager</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>主题管理器，iOS13+可跟随系统改变</p>
<div class="aside aside-note">
    <p class="aside-title">Note</p>
    框架默认只拦截了UIView|UIViewController|UIScreen|UIImageView|UILabel类，满足条件会自动触发fwThemeChanged；如果不满足条件或者拦截未生效，需先设置主题上下文fwThemeContext才能生效
注意事项：iOS13以下默认不支持主题切换；如需支持，请使用fwColor相关方法

</div>

                        <a href="Classes/FWThemeManager.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWThemeManager</span> <span class="p">:</span> <span class="nc">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:objc(cs)FWThemeObject"></a>
                    <a name="//apple_ref/swift/Class/FWThemeObject" class="dashAnchor"></a>
                    <a class="token" href="#/c:objc(cs)FWThemeObject">FWThemeObject</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>主题动态对象，可获取当前主题静态对象</p>

                        <a href="Classes/FWThemeObject.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Objective-C</p>
                          <pre class="highlight objective_c"><code>
<span class="k">@interface</span> <span class="nc">FWThemeObject</span><span class="o">&lt;</span><span class="n">__covariant</span> <span class="n">ObjectType</span><span class="o">&gt;</span> <span class="o">:</span> <span class="n">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/ABVersion"></a>
                <a name="//apple_ref/swift/Section/ABVersion" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/ABVersion"></a>
                  <h3 class="section-name"><span>ABVersion</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:@M@FWFramework@objc(cs)FWABVersion"></a>
                    <a name="//apple_ref/swift/Class/ABVersion" class="dashAnchor"></a>
                    <a class="token" href="#/c:@M@FWFramework@objc(cs)FWABVersion">ABVersion</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>AB测试版本类</p>

<p><a href="https://github.com/recruit-mp/ABKit">ABKit</a></p>

                        <a href="Classes/ABVersion.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">@objc</span><span class="p">(</span><span class="kt">FWABVersion</span><span class="p">)</span>
<span class="kd">@objcMembers</span>
<span class="kd">public</span> <span class="kd">class</span> <span class="kt">ABVersion</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/ABSplitTest"></a>
                <a name="//apple_ref/swift/Section/ABSplitTest" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/ABSplitTest"></a>
                  <h3 class="section-name"><span>ABSplitTest</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:@M@FWFramework@objc(cs)FWABSplitTest"></a>
                    <a name="//apple_ref/swift/Class/ABSplitTest" class="dashAnchor"></a>
                    <a class="token" href="#/c:@M@FWFramework@objc(cs)FWABSplitTest">ABSplitTest</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>AB分离测试类</p>

                        <a href="Classes/ABSplitTest.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">@objc</span><span class="p">(</span><span class="kt">FWABSplitTest</span><span class="p">)</span>
<span class="kd">@objcMembers</span>
<span class="kd">public</span> <span class="kd">class</span> <span class="kt">ABSplitTest</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/ABConditionalTest"></a>
                <a name="//apple_ref/swift/Section/ABConditionalTest" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/ABConditionalTest"></a>
                  <h3 class="section-name"><span>ABConditionalTest</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:@M@FWFramework@objc(cs)FWABConditionalTest"></a>
                    <a name="//apple_ref/swift/Class/ABConditionalTest" class="dashAnchor"></a>
                    <a class="token" href="#/c:@M@FWFramework@objc(cs)FWABConditionalTest">ABConditionalTest</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>AB条件测试类</p>

                        <a href="Classes/ABConditionalTest.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">@objc</span><span class="p">(</span><span class="kt">FWABConditionalTest</span><span class="p">)</span>
<span class="kd">@objcMembers</span>
<span class="kd">public</span> <span class="kd">class</span> <span class="kt">ABConditionalTest</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/ABDefaultRepository"></a>
                <a name="//apple_ref/swift/Section/ABDefaultRepository" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/ABDefaultRepository"></a>
                  <h3 class="section-name"><span>ABDefaultRepository</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:@M@FWFramework@objc(cs)FWABDefaultRepository"></a>
                    <a name="//apple_ref/swift/Class/ABDefaultRepository" class="dashAnchor"></a>
                    <a class="token" href="#/c:@M@FWFramework@objc(cs)FWABDefaultRepository">ABDefaultRepository</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>默认随机数仓库，存储于UserDefaults</p>

                        <a href="Classes/ABDefaultRepository.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">@objc</span><span class="p">(</span><span class="kt">FWABDefaultRepository</span><span class="p">)</span>
<span class="kd">@objcMembers</span>
<span class="kd">public</span> <span class="kd">class</span> <span class="kt">ABDefaultRepository</span> <span class="p">:</span> <span class="kt">NSObject</span><span class="p">,</span> <span class="kt"><a href="Protocols/ABRandomRepository.html">ABRandomRepository</a></span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/FW"></a>
                <a name="//apple_ref/swift/Section/FW" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/FW"></a>
                  <h3 class="section-name"><span>FW</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:11FWFramework2FWC"></a>
                    <a name="//apple_ref/swift/Class/FW" class="dashAnchor"></a>
                    <a class="token" href="#/s:11FWFramework2FWC">FW</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>全局包装器(因struct只读，只能用class)</p>

<p>自定义FW为任意名称(如APP)示例：
public typealias APP = FW
使用示例：
APP.safeString(object)</p>

                        <a href="Classes/FW.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">FW</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/Benchmark"></a>
                <a name="//apple_ref/swift/Section/Benchmark" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/Benchmark"></a>
                  <h3 class="section-name"><span>Benchmark</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:@M@FWFramework@objc(cs)FWBenchmark"></a>
                    <a name="//apple_ref/swift/Class/Benchmark" class="dashAnchor"></a>
                    <a class="token" href="#/c:@M@FWFramework@objc(cs)FWBenchmark">Benchmark</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>时间调试器</p>

                        <a href="Classes/Benchmark.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">@objc</span><span class="p">(</span><span class="kt">FWBenchmark</span><span class="p">)</span>
<span class="kd">@objcMembers</span>
<span class="kd">public</span> <span class="kd">class</span> <span class="kt">Benchmark</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/Wrapper"></a>
                <a name="//apple_ref/swift/Section/Wrapper" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/Wrapper"></a>
                  <h3 class="section-name"><span>Wrapper</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:11FWFramework7WrapperC"></a>
                    <a name="//apple_ref/swift/Class/Wrapper" class="dashAnchor"></a>
                    <a class="token" href="#/s:11FWFramework7WrapperC">Wrapper</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>属性包装器(因struct只读，只能用class)</p>

                        <a href="Classes/Wrapper.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">Wrapper</span><span class="o">&lt;</span><span class="kt">Base</span><span class="o">&gt;</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/Promise"></a>
                <a name="//apple_ref/swift/Section/Promise" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/Promise"></a>
                  <h3 class="section-name"><span>Promise</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:@M@FWFramework@objc(cs)FWPromise"></a>
                    <a name="//apple_ref/swift/Class/Promise" class="dashAnchor"></a>
                    <a class="token" href="#/c:@M@FWFramework@objc(cs)FWPromise">Promise</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>框架约定类</p>

                        <a href="Classes/Promise.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">@objc</span><span class="p">(</span><span class="kt">FWPromise</span><span class="p">)</span>
<span class="kd">@objcMembers</span>
<span class="kd">public</span> <span class="kd">class</span> <span class="kt">Promise</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/AuthorizeManager"></a>
                <a name="//apple_ref/swift/Section/AuthorizeManager" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/AuthorizeManager"></a>
                  <h3 class="section-name"><span>AuthorizeManager</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:@M@FWFramework@objc(cs)FWAuthorizeManager"></a>
                    <a name="//apple_ref/swift/Class/AuthorizeManager" class="dashAnchor"></a>
                    <a class="token" href="#/c:@M@FWFramework@objc(cs)FWAuthorizeManager">AuthorizeManager</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>权限管理器。由于打包上传ipa时会自动检查隐私库并提供Info.plist描述，所以默认关闭隐私库声明</p>

<p>开启指定权限方法：
Pod项目：添加pod时同时指定
pod &lsquo;FWFramework&rsquo;, :subspecs =&gt; [&lsquo;Contacts&rsquo;]</p>

                        <a href="Classes/AuthorizeManager.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">@objc</span><span class="p">(</span><span class="kt">FWAuthorizeManager</span><span class="p">)</span>
<span class="kd">@objcMembers</span>
<span class="kd">public</span> <span class="kd">class</span> <span class="kt">AuthorizeManager</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/KeychainManager"></a>
                <a name="//apple_ref/swift/Section/KeychainManager" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/KeychainManager"></a>
                  <h3 class="section-name"><span>KeychainManager</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:@M@FWFramework@objc(cs)FWKeychainManager"></a>
                    <a name="//apple_ref/swift/Class/KeychainManager" class="dashAnchor"></a>
                    <a class="token" href="#/c:@M@FWFramework@objc(cs)FWKeychainManager">KeychainManager</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>Keychain管理器</p>

                        <a href="Classes/KeychainManager.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">@objc</span><span class="p">(</span><span class="kt">FWKeychainManager</span><span class="p">)</span>
<span class="kd">@objcMembers</span>
<span class="kd">public</span> <span class="kd">class</span> <span class="kt">KeychainManager</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/NotificationManager"></a>
                <a name="//apple_ref/swift/Section/NotificationManager" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/NotificationManager"></a>
                  <h3 class="section-name"><span>NotificationManager</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:@M@FWFramework@objc(cs)FWNotificationManager"></a>
                    <a name="//apple_ref/swift/Class/NotificationManager" class="dashAnchor"></a>
                    <a class="token" href="#/c:@M@FWFramework@objc(cs)FWNotificationManager">NotificationManager</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>通知管理器</p>

                        <a href="Classes/NotificationManager.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">@objc</span><span class="p">(</span><span class="kt">FWNotificationManager</span><span class="p">)</span>
<span class="kd">@objcMembers</span>
<span class="kd">public</span> <span class="kd">class</span> <span class="kt">NotificationManager</span> <span class="p">:</span> <span class="kt">NSObject</span><span class="p">,</span> <span class="kt">UNUserNotificationCenterDelegate</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/VersionManager"></a>
                <a name="//apple_ref/swift/Section/VersionManager" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/VersionManager"></a>
                  <h3 class="section-name"><span>VersionManager</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/c:@M@FWFramework@objc(cs)FWVersionManager"></a>
                    <a name="//apple_ref/swift/Class/VersionManager" class="dashAnchor"></a>
                    <a class="token" href="#/c:@M@FWFramework@objc(cs)FWVersionManager">VersionManager</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>版本管理器</p>

                        <a href="Classes/VersionManager.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">@objc</span><span class="p">(</span><span class="kt">FWVersionManager</span><span class="p">)</span>
<span class="kd">@objcMembers</span>
<span class="kd">public</span> <span class="kd">class</span> <span class="kt">VersionManager</span> <span class="p">:</span> <span class="kt">NSObject</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
            <div class="task-group">
              <div class="task-name-container">
                <a name="/LayoutChain"></a>
                <a name="//apple_ref/swift/Section/LayoutChain" class="dashAnchor"></a>
                <div class="section-name-container">
                  <a class="section-name-link" href="#/LayoutChain"></a>
                  <h3 class="section-name"><span>LayoutChain</span>
</h3>
                </div>
              </div>
              <ul>
                <li class="item">
                  <div>
                    <code>
                    <a name="/s:11FWFramework11LayoutChainC"></a>
                    <a name="//apple_ref/swift/Class/LayoutChain" class="dashAnchor"></a>
                    <a class="token" href="#/s:11FWFramework11LayoutChainC">LayoutChain</a>
                    </code>
                  </div>
                  <div class="height-container">
                    <div class="pointer-container"></div>
                    <section class="section">
                      <div class="pointer"></div>
                      <div class="abstract">
                        <p>视图链式布局类。如果约束条件完全相同，会自动更新约束而不是重新添加。
另外，默认布局方式使用LTR，如果需要RTL布局，可通过autoLayoutRTL统一启用</p>

                        <a href="Classes/LayoutChain.html" class="slightly-smaller">See more</a>
                      </div>
                      <div class="declaration">
                        <h4>Declaration</h4>
                        <div class="language">
                          <p class="aside-title">Swift</p>
                          <pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">class</span> <span class="kt">LayoutChain</span></code></pre>

                        </div>
                      </div>
                    </section>
                  </div>
                </li>
              </ul>
            </div>
          </section>
        </section>
        <section id="footer">
          <p>&copy; 2022 <a class="link" href="http://wuyong.site" target="_blank" rel="external noopener">Wu Yong</a>. All rights reserved. (Last updated: 2022-08-02)</p>
          <p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external noopener">jazzy ♪♫ v0.14.2</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external noopener">Realm</a> project.</p>
        </section>
      </article>
    </div>
  </body>
</html>
